context manager
withブロックで使うやつ
__enter__(self)
context managerが生成されるときに呼ばれる
返り値はwith ... as obj:のobjになる
__exit__(self, exc_type, exc_value, traceback)
contextから抜けるときに呼ばれる
返り値
Trueにすると、例外が無視される
Falseにすると、例外がraiseされる
ひとつ上の例外処理ハンドラが呼び出される
Python のコンテキストマネージャと with ブロック - Python の基本 - Python 入門
3. Data model — Python 3.10.7 documentation